home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / grdrtn / gridinpt.frm < prev    next >
Text File  |  1995-05-08  |  7KB  |  239 lines

  1. VERSION 2.00
  2. Begin Form Form1 
  3.    BackColor       =   &H00C0C0C0&
  4.    Caption         =   "Grid Routines"
  5.    ClientHeight    =   5400
  6.    ClientLeft      =   2355
  7.    ClientTop       =   1275
  8.    ClientWidth     =   4875
  9.    Height          =   5805
  10.    Left            =   2295
  11.    LinkMode        =   1  'Source
  12.    LinkTopic       =   "Form1"
  13.    ScaleHeight     =   5400
  14.    ScaleWidth      =   4875
  15.    Top             =   930
  16.    Width           =   4995
  17.    Begin TextBox Text1 
  18.       BackColor       =   &H00FFFF00&
  19.       Height          =   285
  20.       Left            =   2040
  21.       TabIndex        =   0
  22.       Top             =   5460
  23.       Width           =   555
  24.    End
  25.    Begin CommandButton Command1 
  26.       Caption         =   "&Quit"
  27.       Height          =   420
  28.       Index           =   6
  29.       Left            =   2880
  30.       TabIndex        =   12
  31.       Top             =   4620
  32.       Width           =   1020
  33.    End
  34.    Begin CommandButton Command1 
  35.       Caption         =   "&Load Grid"
  36.       Height          =   420
  37.       Index           =   5
  38.       Left            =   1860
  39.       TabIndex        =   11
  40.       Top             =   4620
  41.       Width           =   1020
  42.    End
  43.    Begin CommandButton Command1 
  44.       Caption         =   "&Save Grid"
  45.       Height          =   420
  46.       Index           =   4
  47.       Left            =   780
  48.       TabIndex        =   10
  49.       Top             =   4620
  50.       Width           =   1080
  51.    End
  52.    Begin CommandButton Command1 
  53.       Caption         =   "&To Clipbd"
  54.       Height          =   420
  55.       Index           =   3
  56.       Left            =   3360
  57.       TabIndex        =   9
  58.       Top             =   4200
  59.       Width           =   1020
  60.    End
  61.    Begin CommandButton Command1 
  62.       Caption         =   "&Clear Grid"
  63.       Height          =   420
  64.       Index           =   2
  65.       Left            =   2340
  66.       TabIndex        =   8
  67.       Top             =   4200
  68.       Width           =   1020
  69.    End
  70.    Begin CommandButton Command1 
  71.       Caption         =   "&Add Row"
  72.       Height          =   435
  73.       Index           =   1
  74.       Left            =   1320
  75.       TabIndex        =   7
  76.       Top             =   4200
  77.       Width           =   1035
  78.    End
  79.    Begin CommandButton Command1 
  80.       Caption         =   "&Del Row"
  81.       Height          =   435
  82.       Index           =   0
  83.       Left            =   300
  84.       TabIndex        =   6
  85.       Top             =   4200
  86.       Width           =   1035
  87.    End
  88.    Begin PictureBox Grid1 
  89.       BackColor       =   &H000000FF&
  90.       Height          =   1000
  91.       Left            =   0
  92.       ScaleHeight     =   975
  93.       ScaleWidth      =   975
  94.       TabIndex        =   1
  95.       Top             =   0
  96.       Width           =   1000
  97.    End
  98.    Begin Label Label4 
  99.       Alignment       =   2  'Center
  100.       BackColor       =   &H000000FF&
  101.       Caption         =   "0"
  102.       ForeColor       =   &H00FFFFFF&
  103.       Height          =   225
  104.       Left            =   2910
  105.       TabIndex        =   5
  106.       Top             =   3750
  107.       Width           =   375
  108.    End
  109.    Begin Label Label2 
  110.       BackColor       =   &H00C0C0C0&
  111.       Caption         =   "Col:"
  112.       Height          =   225
  113.       Left            =   2385
  114.       TabIndex        =   3
  115.       Top             =   3750
  116.       Width           =   405
  117.    End
  118.    Begin Label Label3 
  119.       Alignment       =   2  'Center
  120.       BackColor       =   &H000000FF&
  121.       Caption         =   "0"
  122.       ForeColor       =   &H00FFFFFF&
  123.       Height          =   210
  124.       Left            =   1545
  125.       TabIndex        =   4
  126.       Top             =   3750
  127.       Width           =   405
  128.    End
  129.    Begin Label Label1 
  130.       BackColor       =   &H00C0C0C0&
  131.       Caption         =   "Row:"
  132.       Height          =   225
  133.       Left            =   960
  134.       TabIndex        =   2
  135.       Top             =   3750
  136.       Width           =   495
  137.    End
  138.    Begin Label Label5 
  139.       BackColor       =   &H00C0C0C0&
  140.       Caption         =   "Use Ctrl-Up, Ctrl-Down, Ctrl-Right, Ctrl-Left to Scroll."
  141.       Height          =   495
  142.       Left            =   1200
  143.       TabIndex        =   13
  144.       Top             =   420
  145.       Width           =   2655
  146.    End
  147. End
  148. DefInt A-Z
  149.  
  150. 'Grid Scrolling And Control Program
  151. 'Copyright 1991 Nelson Ford, Public (software) Library
  152. 'For documentation and copyright license,
  153. '  see the file Grid.Bas
  154.  
  155. 'The code in this module which allows overlapping controls
  156. 'was developed by Keith Funk
  157.  
  158. Declare Function ControlhWnd Lib "ctlhwnd.dll" (Ctl As Control) As Integer
  159. Declare Function GetFocus Lib "User" ()
  160. Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer)
  161. Declare Function GetWindow Lib "User" (ByVal hWnd As Integer, ByVal wCmd As Integer) As Integer
  162. Declare Function GetNextWindow Lib "User" (ByVal hWnd As Integer, ByVal wFlag As Integer) As Integer
  163. Declare Function GetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer) As Long
  164. Declare Function SetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long
  165.  
  166. Const WS_CLIPSIBLINGS = &H4000000
  167. Const SWP_NOSIZE = &H1
  168. Const SWP_NOMOVE = &H2
  169. Const GW_HWNDNEXT = 2
  170. Const GW_CHILD = 5
  171. Const GWL_STYLE = (-16)
  172.  
  173. Sub Command1_Click (Index As Integer)
  174.   Select Case Index
  175.     Case 0
  176.       DelRow Grid1
  177.     Case 1
  178.       InsertRow Grid1
  179.     Case 2
  180.       ClearGrid Grid1
  181.     Case 3
  182.       Grid2Clip Grid1
  183.     Case 4
  184.       SaveGrid Grid1, "GridTest", Cancel
  185.     Case 5
  186.       LoadGrid Grid1, "GridTest"
  187.     Case 6
  188.       End
  189.   End Select
  190.   'keep the Grid highlight under the Text box:
  191.   Grid1.SelStartCol = Grid1.Col
  192.   Grid1.SelEndCol = Grid1.Col
  193.   Grid1.SelStartRow = Grid1.row
  194.   Grid1.SelEndRow = Grid1.row
  195.   Text1.SetFocus
  196. End Sub
  197.  
  198. Sub Form_Load ()
  199.   Form1.Show
  200.   Call SetClipSiblingBit(Form1.hWnd)
  201.   'get hWnd for the controls:
  202.      Grid1.SetFocus
  203.      G = GetFocus()
  204.      Text1.SetFocus
  205.      t = GetFocus()
  206.   Call SetWindowPos(G, t, 0, 0, 0, 0, (SWP_NOSIZE Or SWP_NOMOVE))
  207.   Grid1.row = 0
  208.   Grid1.Col = 0
  209.   Text1.Top = Grid1.Top
  210.   Text1.Left = Grid1.Left
  211.   Text1.Width = Grid1.ColWidth + 20
  212.   Text1.Visible = -1
  213. End Sub
  214.  
  215. Sub SetClipSiblingBit (ByVal hWndParent As Integer)
  216.   Dim hWndChild As Integer
  217.   Dim Style As Long
  218.   hWndChild = GetWindow(hWndParent, GW_CHILD)
  219.   Do
  220.     Style = GetWindowLong(hWndChild, GWL_STYLE)
  221.     Style = Style Or WS_CLIPSIBLINGS
  222.     Style = SetWindowLong(hWndChild, GWL_STYLE, Style)
  223.     If GetWindow(hWndChild, GW_CHILD) <> 0 Then
  224.       Call SetClipSiblingBit(hWndChild)
  225.     End If
  226.     hWndChild = GetNextWindow(hWndChild, GW_HWNDNEXT)
  227.   Loop Until hWndChild = 0
  228. End Sub
  229.  
  230. Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
  231.   'If keycode <> 17 Then Debug.Print keycode
  232.   If Shift = 2 And (KeyCode > 36 And KeyCode < 41) Then
  233.     MoveCell Grid1, Text1, KeyCode
  234.     Label3.Caption = LTrim$(Str$(Grid1.row))
  235.     Label4.Caption = LTrim$(Str$(Grid1.Col))
  236.   End If
  237. End Sub
  238.  
  239.